#pragma region  【算法7 - 5】划分算法
int Partition(datatype R[], int low, int high)
{//对子区间R[low]. .R[ high]，以R[low]为支点进行划分，算法返回支点记录最终的位置
    R[0] = R[low];     //暂存支点记录
    while (low < high) //从表的两端交替地向中间扫描
    {
        while (low < high && R[high].key >= R[0].kry)
            High--;
        if (low < high)
        {
            R[low] = R[high];
            low++;
        } //将比支点记录小的交换到前面
        while (low < high && R[low].key < R[0].key)
            low++;
        if (low < high)
        {
            R[high] = R[low];
            high - -;
        } //将比支点记录大的交换到后面
    }
    R[low] = R[0]; //支点记录到位
    return low;    //返回支点记录所在位置
}
#pragma endregion
#pragma region 【算法7 - 6】快速排序算法
void Quick_Sort(datatype R[], int s, int t)
{ //对R[s]..R[t]进行快速排序
    if (s < t)
    {
        i = Partition(R, s, t)       //将表一分为二
            Quick_Sort(R, s, i - 1); //对支点前端子表递归排序
        Quick_Sort(R, i + 1, t);     //对支点后端子表递归排序
    }
}
#pragma endregion